package com.wicket.okrdataassets.biz.service.impl;

import cn.hutool.core.bean.BeanUtil;
import com.wicket.okrdataassets.biz.service.dto.req.*;
import com.wicket.okrdataassets.biz.service.dto.res.*;
import com.wicket.okrdataassets.common.exception.BizException;
import com.wicket.okrdataassets.common.util.CommonFunctionHelper;
import com.wicket.okrdataassets.common.util.RedisUtil;
import java.util.List;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import org.apache.skywalking.apm.toolkit.trace.Tag;
import org.apache.skywalking.apm.toolkit.trace.Tags;
import org.apache.skywalking.apm.toolkit.trace.Trace;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

/**
 * @author ：
 * @date ：
 *
 *
 * @version 1.0
 */
@Service
public class UnstructuredResourcesServiceImpl
  implements com.wicket.okrdataassets.biz.service.UnstructuredResourcesService {

  @Resource
  private RedisUtil redisUtil;
/**
   * D8执行生命周期判断(公共)[10346]
   * gen by moon at 11/18/2024, 10:07:56 AM
   */
  @Trace(operationName = "D8执行生命周期判断(公共)")
  @Tags({@Tag(key = "参数",value = "arg[0]"),
            @Tag(key = "返回值",value = "returnedObj")})
  @Transactional(rollbackFor=Exception.class)
  @Override
  public ImplementSubjectLifeCycleJudgeComRespDto implementSubjectLifeCycleJudgeCom(ImplementSubjectLifeCycleJudgeComReqDto reqDto){
    
      
      if((reqDto!= null&&  reqDto.getLifecyCycleOperationType() !=null && reqDto.getLifecyCycleOperationType().equals("DELETE"))) {
        //if(D8执行生命周期判断(公共).生命周期操作类型 等于 草稿删除)  73417
        
if((reqDto!= null&&  reqDto.getSubjectLifeCycle() !=null && reqDto.getSubjectLifeCycle().equals("CURRENTLY_VALID")||reqDto!= null&&  reqDto.getSubjectLifeCycle() !=null && reqDto.getSubjectLifeCycle().equals("ARCHIVING")||reqDto!= null&&  reqDto.getIsValid() !=null && reqDto.getIsValid().equals("TRUE"))) {
        //if((D8执行生命周期判断(公共).主体生命周期 等于 当前有效 or D8执行生命周期判断(公共).主体生命周期 等于 历史存档 or D8执行生命周期判断(公共).是否作废 等于 是))  73425
        
//异常结束 73428
      throw new BizException("3R300100515","对不起，专辑已发布无法删除~",false);
      }
      }
else if((reqDto!= null&&  reqDto.getLifecyCycleOperationType() !=null && reqDto.getLifecyCycleOperationType().equals("ACHIVE"))){
       //elseif(D8执行生命周期判断(公共).生命周期操作类型 等于 存档)  73418
      
if((reqDto!= null&&  reqDto.getSubjectLifeCycle() !=null && reqDto.getSubjectLifeCycle().equals("EDITING")||reqDto!= null&&  reqDto.getSubjectLifeCycle() !=null && reqDto.getSubjectLifeCycle().equals("ARCHIVING")||reqDto!= null&&  reqDto.getIsValid() !=null && reqDto.getIsValid().equals("TRUE"))) {
        //if((D8执行生命周期判断(公共).主体生命周期 等于 正在编辑 or D8执行生命周期判断(公共).主体生命周期 等于 历史存档 or D8执行生命周期判断(公共).是否作废 等于 是))  73430
        
//异常结束 73434
      throw new BizException("3R300100516","对不起，存档状态条件不满足~",false);
      }
    }
else if((reqDto!= null&&  reqDto.getLifecyCycleOperationType() !=null && reqDto.getLifecyCycleOperationType().equals("INVALIDATE"))){
       //elseif(D8执行生命周期判断(公共).生命周期操作类型 等于 作废)  73419
      
if((reqDto!= null&&  reqDto.getSubjectLifeCycle() !=null && reqDto.getSubjectLifeCycle().equals("EDITING")||reqDto!= null&&  reqDto.getIsValid() !=null && reqDto.getIsValid().equals("TRUE"))) {
        //if((D8执行生命周期判断(公共).主体生命周期 等于 正在编辑 or D8执行生命周期判断(公共).是否作废 等于 是))  73436
        
//异常结束 73437
      throw new BizException("3R300100517","对不起，作废状态条件不满足~",false);
      }
    }
else if((reqDto!= null&&  reqDto.getLifecyCycleOperationType() !=null && reqDto.getLifecyCycleOperationType().equals("RECYLE_DELETE"))){
       //elseif(D8执行生命周期判断(公共).生命周期操作类型 等于 回收站删除)  73438
      
if((reqDto!= null&&  reqDto.getSubjectLifeCycle() !=null && reqDto.getSubjectLifeCycle().equals("EDITING")||reqDto!= null&&  reqDto.getIsValid() !=null && reqDto.getIsValid().equals("FALSE"))) {
        //if((D8执行生命周期判断(公共).主体生命周期 等于 正在编辑 or D8执行生命周期判断(公共).是否作废 等于 否))  73440
        
//异常结束 73441
      throw new BizException("3R300100518","对不起，回收站删除状态条件不满足~",false);
      }
    }
else{
       //else  73422
      
//异常结束 73423
      throw new BizException("3R300100519","对不起，非结构化资源状态判断场景有误，请联系管理员~",false);
    }
ImplementSubjectLifeCycleJudgeComRespDto retData = new ImplementSubjectLifeCycleJudgeComRespDto();
  
  

  
  
return retData;
  }
  //
}
